1. Field of the Invention
The present invention relates to a communication device and communication method wherein, in the event that a single network interface is shared by multiple flows, transmission request from each of the flows are managed so as to avoid simultaneous transmission requests from two or more flows from occurring.
2. Description of the Related Art
In the event of guaranteeing bandwidth for multiple flows sharing a single network interface in a network communication system which transmits and receives packet data using a network such as the Internet as a communication network, methods have been proposed for appropriating packet queues to each flow, in order to avoid collision transmission requests from the flows. One example is Fair Queuing (Joins Nagle, On Packet Switched with Infinite Storage, IEEE Transaction on Communications Vol. 35 No. 4, pp. 435–438, April. 1987).
FIG. 9 is a conceptual diagram illustrating the processing of packet data according to this method. As shown in the diagram, which flow each transmission packet belongs to is determined based on some sort of identifier, and each transmission packet is placed in a dedicated queue provided in a rule correlated with that flow. For example, as shown in the figure, packet data having an identifier A1 is placed in a queue Qa1, packet data having an identifier A2 is placed in a queue Qa2, packet data having an identifier A3 is placed in a queue Qa3, on through packet data having an identifier A10 being placed in a queue Qa10.
As for the identifier for the packets, with a network wherein TCP/IP is used as a communication protocol for example, packet header information attached to each packet is used. FIG. 10 shows the configuration of a TCP/IP protocol packet header. As shown in the figure, combining part or all of the IP addresses and port Nos. of the transmitting side and receiving side of the packet data, protocol No., and other fields from this header allows a flow to which the packet belongs to be decided uniquely. Accordingly, the flow to which the packet belongs can be distinguished with such header information as a packet identifier, and the packet can be placed in a queue dedicated for the flow thereof.
Packets are dequeued from each queue at a timing set according to the bandwidth guaranteed for the flow thereof, and are transmitted to the network. The transmission intervals of the packets from each queue depend on the packet size and reservation bandwidth (reservation rate) of the flow, the packet sending timing of the application, and so forth, so there are cases wherein packet transmission requests occur simultaneously from multiple queues. In this case, a selection algorithm becomes necessary to decide which queue's packets to transmit first.
Now, with conventional network communication devices, there has been no effective method for managing packet transmission, so in the event that a network interface is shared by multiple flows, and particularly in the event that bandwidth-guaranteed flows and best-effort flows coexist, there has been no effective means for appropriately appropriating packet transmission to avoid collision transmission requests from the flows.